// import axios from "axios"

// let httpRequest = axios.create({
//     baseURL: 'http://vt.ossjk.com/',
//     timeout: 10000,
// });
// // 添加请求拦截器
// httpRequest.interceptors.request.use(function (config) {
//     // 在发送请求之前做些什么
//     return config;
// }, function (error) {
//     // 对请求错误做些什么
//     return Promise.reject(error);
// });

// // 添加响应拦截器
// httpRequest.interceptors.response.use(function (response) {
//     // 对响应数据做点什么
//     return response;
// }, function (error) {
//     // 对响应错误做点什么
//     return Promise.reject(error);
// });

// export default httpRequest


import axios from "axios"
import {$Storage} from "@utils/storage.js"
import { message } from 'ant-design-vue';
import router from "@router/index.js";

class HttpRequest {
    constructor() {
        this.http = axios.create({
            baseURL: process.env.VUE_APP_BASE_URL,
            timeout: 10000,
        });
        this.interceptors()
    }

    interceptors() {
        this.http.interceptors.request.use(function (config) {
            // 在发送请求之前做些什么
            // 给每一个请求都设置请求头token
            const token = $Storage.getItem("jwttoken")
            if(token){
                config.headers.jwttoken = token
            }
            return config;
        }, function (error) {
            // 对请求错误做些什么
            return Promise.reject(error);
        });

        this.http.interceptors.response.use(function (response) {
            // 对响应数据做点什么
            switch (response.data.code){
                case 1000://成功
                    message.success(response.data.msg)
                    break;
                case 1001://数据错误
                    message.error(response.data.msg)
                    break;
                case 1003://重定向
                    message.error(response.data.msg)
                    router.replace("/login")
                    break;
                case 1005://未登录
                    message.error(response.data.msg)
                    router.replace("/login")
                    break;
                default:
                    break;
            }

            return response;
        }, function (error) {
            // 对响应错误做点什么
            return Promise.reject(error);
        });
    }
}


export default (new HttpRequest()).http
